Skip to content

fix(material-experimental/mdc-chips) Replace default values #19006

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 7, 2020

Conversation

vanessanschmitt
Copy link
Collaborator

mat-chip-grid implements ControlValueAccessor. Its default value
right now is undefined; once a chip is added, its value is an array
of all the chip values. The default value for a given chip is all the
text content inside the chip. For chips with icons, this causes the
icon text to be included in the value, so a row chip using matChipRemove
would have a value like " hello cancel ". (There's also some unwanted
whitespace in the textContent).

Replace undefined with an empty array, and the textContent with just
the actual chip text, which in the case of row chips corresponds to the
text that the user entered.

These unintuitive values are the same as the old non-mdc
mat-chip-listbox. But due to the way the old listbox implemented
ControlValueAccessor, chips being used as a chip grid didn't actually
ever call the onChange handler to update the FormControl value, so their
values were basically ignored.

@googlebot googlebot added the cla: yes PR author has agreed to Google's Contributor License Agreement label Apr 6, 2020
mat-chip-grid implements ControlValueAccessor. Its default value
right now is undefined; once a chip is added, its value is an array
of all the chip values. The default value for a given chip is all the
text content inside the chip. For chips with icons, this causes the
icon text to be included in the value, so a row chip using matChipRemove
would have a value like " hello cancel ". (There's also some unwanted
whitespace in the textContent).

Replace undefined with an empty array, and the textContent with just
the actual chip text, which in the case of row chips corresponds to the
text that the user entered.

These unintuitive values are the same as the old non-mdc
mat-chip-listbox. But due to the way the old listbox implemented
ControlValueAccessor, chips being used as a chip grid didn't actually
ever call the onChange handler to update the FormControl value, so their
values were basically ignored.
@mmalerba mmalerba added lgtm action: merge The PR is ready for merge by the caretaker labels Apr 6, 2020
Copy link
Contributor

@mmalerba mmalerba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mmalerba mmalerba added G This is is related to a Google internal issue P2 The issue is important to a large percentage of users, with a workaround target: patch This PR is targeted for the next patch release labels Apr 6, 2020
@mmalerba mmalerba merged commit 029e363 into angular:master Apr 7, 2020
@vanessanschmitt vanessanschmitt deleted the chip-values branch April 7, 2020 18:00
mmalerba pushed a commit that referenced this pull request Apr 14, 2020
mat-chip-grid implements ControlValueAccessor. Its default value
right now is undefined; once a chip is added, its value is an array
of all the chip values. The default value for a given chip is all the
text content inside the chip. For chips with icons, this causes the
icon text to be included in the value, so a row chip using matChipRemove
would have a value like " hello cancel ". (There's also some unwanted
whitespace in the textContent).

Replace undefined with an empty array, and the textContent with just
the actual chip text, which in the case of row chips corresponds to the
text that the user entered.

These unintuitive values are the same as the old non-mdc
mat-chip-listbox. But due to the way the old listbox implemented
ControlValueAccessor, chips being used as a chip grid didn't actually
ever call the onChange handler to update the FormControl value, so their
values were basically ignored.
@angular-automatic-lock-bot
Copy link

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators May 8, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
action: merge The PR is ready for merge by the caretaker cla: yes PR author has agreed to Google's Contributor License Agreement G This is is related to a Google internal issue P2 The issue is important to a large percentage of users, with a workaround target: patch This PR is targeted for the next patch release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants